<?php
use think\Route;

// 动态注册
/*
 *  Route::rule('路由表达式','路由地址','请求类型','路由参数（数组）','变量规则（数组）');
 *  路由规则:URL访问规则（包括静态规则和动态规则）,只有符合规则的路由才能正确访问;
    路由地址:实际访问的地址（可以是控制器操作、类的方法或者闭包）;
    请求类型:表示当前路由生效使用的请求类型,包括GET/POST/PUT/DELETE等,如果希望任何请求都能访问使用*号（默认值）。
    路由参数:路由匹配的条件约束或设置参数（用于检测或者解析）;
    路由变量:路由规则里面的动态变量以及PATH_INFO里面的参数都称之为路由变量;
    变量规则:路由规则中的变量的匹配规则（正则表达式）;

    支持任意请求规则
    Route::rule('new/:id','News/update');
    定义GET请求路由规则
    Route::get('new/:id','News/read');
    定义POST请求路由规则
    Route::post('new/:id','News/update');
    定义PUT请求路由规则
    Route::put('new/:id','News/update');
    定义DELETE请求路由规则
    Route::delete('new/:id','News/delete');
    所有请求都支持的路由规则
    Route::any('new/:id','News/read');
 * */


Route::get('/','index/index/index');

Route::get('ppp','index/index/ppp');

Route::rule('xxoo', 'index/index/index');

Route::any('ooxx', 'index/index/ppp');

Route::get('admin$','admin/index/index');


// 无参 静态路由
Route::get('user', 'index/index/user');
// 必填参数 动态路由
Route::get('user/:id', 'index/index/user');
// 可选参数 动态路由
Route::get('user/[:id]', 'index/index/user');
// 匹配参数 动态路由
//Route::get('user/:id$', 'index/index/user');


// 闭包路由
//Route::get('js/:id', function ($id) {
//    if ($id < 250) {
//        return '您访问的技师号为: ' . $id;
//    } else {
//        return '我们没有那么多技师';
//    }
//});


// http://s85.com/index/blog/index/id/66.html
// http://s85.com/index/blog/read/name/anna.html
// http://s85.com/index/blog/article/year/2018/month/12.html

// 变量规则
// 指定的规则访问指定过的内容,
// 越容易匹配的规则,越往后写
//Route::get('blog/<year>_<month>', 'index/blog/article','',['year'=>'[1-2]\d{3}','month'=>'\d{2}']);
//Route::get('blog/:year/:month', 'index/blog/article','',['year'=>'\d{4}','month'=>'\d{2}']);
//Route::get('blog/:id$', 'index/blog/index','',['id'=>'\d+']);
//Route::get('blog/:name', 'index/blog/read','',['name'=>'\w+']);


// 路由分组
Route::group('blog',[
    ':year/:month' => [
        'index/blog/article',
        [],
        ['year' => '[1-2]\d{3}','month'=>'\d{2}']
    ],
    ':id$' => [
        'index/blog/index',
        [],
        ['id' => '\d+']
    ],
    ':name' => [
        'index/blog/read',
        [],
        ['name' => '\w+']
    ],
]);

// URL生成
Route::get('url','index/index/url');
// JUMP
Route::get('jump','index/index/jump');


Route::rule('users/show/:id','rest/user/readpage');
Route::resource('users', 'rest/user');


// 静态注册
return [
//    '__pattern__' => [
//        'name' => '\w+',
//    ],
//    '[hello]' => [
//        ':id' => ['index/hello', ['method' => 'get'], ['id' => '\d+']],
//        ':name' => ['index/hello', ['method' => 'post']],
//    ],

];
